使用然后()在承诺
问题描述:
我在下面的代码块中使用承诺,2首先然后()我不返回任何值,所以我不知道这是函数中的第一个然后()函数之前调用下一个()。在角2.使用打字稿林谢谢:d使用然后()在承诺
Promise.resolve()
.then(()=>{
this.getListStatus();
})
.then(()=>{
return this._laundryServiceOrderService.findAll(true, offset, this.itemsPerPage, filterQuery)
})
.then((response) => {
this.orders = response.data;
this.totalItems = response.totalItems;
})
.catch(error => {
FlashMessage.setError(error.message);
});
答
第一则()我不返回任何值,所以我不知道这是在第一个功能,那么()呼吁,在未来的功能之前,然后()。
是的。 (这可以用调试器进行简单的检查。)
无关紧要,它不会返回一个值;这与return undefined
的效果相同。因此,链中的下一个回调将看到undefined
作为分辨率值,但由于下一次回调并不关心分辨率值,所以没关系。
这里有一个简单的例子来展示它:
Promise.resolve("a")
.then(result => {
console.log("First callback got: " + result); // Gets "a"
})
.then(result => {
console.log("Second callback got: " + result); // Gets undefined
return "b";
})
.then(result => {
console.log("Third callback got: " + result); // Gets "b"
})
.catch(error => {
console.log("There's no error above, this won't get triggered.");
});
+0
非常感谢 –
_ “我不返回任何值” _你为什么不返回值? Promise.resolve()的目的是什么? – guest271314
我认为then()使用从前面返回的响应 –
@NhanNguyen:正确。 –