那么如何处理if-else中的诺言?

那么如何处理if-else中的诺言?,第1张

那么如何处理if-else中的诺言?

只要您的函数返回承诺,就可以使用建议的第一种方法。

下面的小提琴显示了如何根据第一个解析的值采用不同的链接路径。

function myPromiseFunction() {    //Change the resolved value to take a different path    return Promise.resolve(true);}function conditionalChaining(value) {    if (value) {        //do something        return doSomething().then(doSomethingMore).then(doEvenSomethingMore);    } else {        //do something else        return doSomeOtherThing().then(doSomethingMore).then(doEvenSomethingMore);    }}function doSomething() {    console.log("Inside doSomething function");    return Promise.resolve("This message comes from doSomeThing function");}function doSomeOtherThing() {    console.log("Inside doSomeOtherthing function");    return Promise.resolve("This message comes from doSomeOtherThing function");}function doSomethingMore(message) {    console.log(message);    return Promise.resolve("Leaving doSomethingMore");}function doEvenSomethingMore(message) {    console.log("Inside doEvenSomethingMore function");    return Promise.resolve();}myPromiseFunction().then(conditionalChaining).then(function () {    console.log("All done!");}).catch (function (e) {});

您也可以只进行一个条件链接,将返回承诺分配给变量,然后继续执行应以任何一种方式运行的功能。

function conditionalChaining(value){    if (value) {        //do something        return doSomething();    } else{        //do something else        return doSomeOtherThing();    }}var promise = myPromiseFunction().then(conditionalChaining);promise.then(function(value){    //keep executing functions that should be called either way});


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476861.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存