[英]How can I call promise in handler of that promise?
什么錯誤? 我認為這段代碼必須無限輸出 22, 23, 24,25 ... 等等。
function find() {
let numberPage = 22;
getPromiseOpenPage(numberPage);
function getPromiseOpenPage (numberPage) {
return new Promise( function (resolve, reject) {
resolve(numberPage);
})
}
getPromiseOpenPage().then(
function (res) {
console.log(res);
getPromiseOpenPage(res++);
}
)
}
您需要進行遞歸循環來處理所有無限承諾結果。
getPromiseOpenPage(res++);
您還沒有處理.then
在這里(不,第一getPromiseOpenPage().then(
不計,因為它是一個不同的呼叫)。
所以解決方案是這樣的:
handlePromise() {
myPromise.then((res) => handlePromise()); // On Promise complete it will go back
// to the handler.
}
handlePromise(); // Start handlePromise the first time.
您不應該將getPromiseOpenPage()
作為initial
函數運行
在test(numberPage)
您提供要迭代的初始值,它調用將返回success
狀態的getPromiseOpenPage()
。
並且您console.log(res)
響應值,並將其iterate
1
並通過提供增加1
的新增量值(即23
test(res)
再次調用test(res)
......一次又一次地重復同樣的過程.......無限次
const numberPage = 22;
function getPromiseOpenPage(p) {
return new Promise((resolve, reject) => {
resolve(p);
});
}
function test(p) {
getPromiseOpenPage(p).then((res) => {
console.log(res);
res = res+1;
test(res);
})
}
test(numberPage);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.