[英]Javascript, promise.then() function executed first
我为忽略一些基本内容表示歉意,但我无法解决以下问题。
我想在服务器上创建一个用户,随后显示所有用户(包括新用户)。 为简化起见,我在“ then”子句中添加了警报。 问题是在服务器上的“ CreateUser”完成之前出现警报。 根据文档,“那么”将在诺言完成后执行。 为什么在我的电脑上是相反的?
function createUser(newUser) {
userService.create(newUser) // Post creating new user
.then(
alert('Why do I come up before completion of the userService.create() function ?')
);
}
这是userService.create()函数:
function create(user) {
// alert(user);
const requestOptions = {
method: 'POST',
headers: { ...authHeader(), 'Content-Type': 'application/json' },
body: user
};
return fetch('/Client/Create', requestOptions).then(handleResponse, handleError);
}
handleResponse:
function handleResponse(response) {
return new Promise((resolve, reject) => {
....
handleError:
function handleError(error) {
return Promise.reject(error && error.message);
}
太感谢了。
更改
function createUser(newUser) {
userService.create(newUser) // Post creating new user
.then(
alert('Why do I come up before completion of the userService.create() function ?')
);
}
至:
function createUser(newUser) {
userService.create(newUser) // Post creating new user
.then(function(){
alert('Why do I come up before completion of the userService.create() function ?');
});
}
then
需要传递一个函数,因此请执行以下操作:
userService.create(newUser).then(() => {
alert('Why do I come up before completion of the userService.create() function ?')
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.