Javascript 在javascirpt中使用嵌套返回的原因是什么?它们是如何工作的?

Javascript 在javascirpt中使用嵌套返回的原因是什么?它们是如何工作的?,javascript,Javascript,javascript中的嵌套返回是如何工作的?我曾试图在良好的互联网上找到答案,但找到的网站/例子很少,概念仍然不清楚。当到达第一次返回,然后到达第二次返回时会发生什么 function getSelected(empid) { let utils = myCompany.Xrm.Utils; let cleanid = utils.cleanGuid(empid); let fetchXml = [ '<f

javascript中的嵌套返回是如何工作的?我曾试图在良好的互联网上找到答案,但找到的网站/例子很少,概念仍然不清楚。当到达第一次返回,然后到达第二次返回时会发生什么

    function getSelected(empid) {
        let utils = myCompany.Xrm.Utils;

        let cleanid = utils.cleanGuid(empid);
        let fetchXml = [
            '<fetch >',
            .....
            .....
            .....
            .....
            '</fetch>',
        ].join('');

        let com = myCompany.Xrm.Common;
        // ** here:
        return com.ExecuteFetch(fetchXml, 'entity', true).then(function(result) {
            let selected = [];
            result.forEach(function(interesting_topic) {
                let id = interesting_topic.id;
                selected.push(id);
            });
            // ** and here:
            return selected; 
        }).catch(function(error) {
            console.log(error);
            return null;
        });
    }
函数getSelected(empid){
设utils=myCompany.Xrm.utils;
让cleanid=utils.cleanGuid(empid);
让fetchXml=[
'',
.....
.....
.....
.....
'',
].加入(“”);
让com=myCompany.Xrm.Common;
//**此处:
返回com.ExecuteFetch(fetchXml,'entity',true)。然后返回(函数(结果){
让选定的=[];
result.forEach(函数(有趣的主题){
设id=interest_topic.id;
已选择。推送(id);
});
//**这里:
返回选中的;
}).catch(函数(错误){
console.log(错误);
返回null;
});
}
这些不是“嵌套返回”,它们各自从不同的函数返回

第一个返回
com.ExecuteFetch()
的结果,这是一个
承诺
。因此,
getSelected()
函数返回一个
Promise
。此时,该功能完成。它已经恢复了它的价值

稍后,当
承诺
被解析时,观察到该结果的任何内容都将看到该承诺的解析返回
所选
中的任何内容。例如,如果调用代码执行以下操作:

let result = await getSelected(someValue);
console.log(result);
然后,
result
将是所选
的返回值。或者,如果
await
不是该上下文中的选项,则可以使用代码中显示的相同
。然后()
结构:

getSelected(someValue).then(function (result) {
    console.log(result);
});
在这两种情况下,
getSelected()
返回一个
Promise
,而解析该Promise的回调函数返回一个值。不同的函数,不同的返回。

这些不是“嵌套返回”,它们各自从不同的函数返回

第一个返回
com.ExecuteFetch()
的结果,这是一个
承诺
。因此,
getSelected()
函数返回一个
Promise
。此时,该功能完成。它已经恢复了它的价值

稍后,当
承诺
被解析时,观察到该结果的任何内容都将看到该承诺的解析返回
所选
中的任何内容。例如,如果调用代码执行以下操作:

let result = await getSelected(someValue);
console.log(result);
然后,
result
将是所选
的返回值。或者,如果
await
不是该上下文中的选项,则可以使用代码中显示的相同
。然后()
结构:

getSelected(someValue).then(function (result) {
    console.log(result);
});
在这两种情况下,
getSelected()
返回一个
Promise
,而解析该Promise的回调函数返回一个值。不同的功能,不同的回报