首页 > 解决方案 > Javascript Promises:当涉及到 javascript 远程调用时,你如何链接结果?

问题描述

这更多的是正确语法的问题。以下代码在远程 JavaScript 调用完成之前在 Startup 序列中生成控制台日志输出。我完全是新手,所以我确定我的语法错误。

以下是两段相关代码的示例:

var getNode = function(sfid,override) {
    return new Promise(function(resolve,reject){
          var text = "";
          VisJSController.returnObjectsJson(sfid,
            function(result, event) {
              if(event.type === 'exception') {
                console.log("exception");
                console.log(event);
              } else if (event.status) {
                result.Nodes.forEach(function(entry)
                {
                    addNode(entry.id,entry.label,entry.shape,eval(entry.image));
                    if (entry.id != sfid && !(edgeIds.includes(entry.id+sfid) || edgeIds.includes(sfid+entry.id)))
                    {
                        addEdge(sfid,entry.id);
                        console.log('Adding Edge');
                        console.log(sfid);
                        console.log(entry.id);
                    }
                    else
                    {
                        console.log('Edge detected');
                        console.log(entry.id);
                        console.log(sfid);
                        console.log(edgeIds);
                    }
                });
                resolve(true);
              } else {
                console.log(event.message);
              }
            }


          );
    });
}

function startup()
{
    getNode('{!SF_ID}',true).then(console.log('finished'));
}

在此示例中,我希望在 getNode 完成处理远程请求后看到完成的日志显示在末尾。

标签: javascriptpromise

解决方案


推荐阅读