gpt4 book ai didi

javascript - 在不链接回调的情况下等待 getScript

转载 作者:行者123 更新时间:2023-11-30 19:03:33 26 4
gpt4 key购买 nike

我有一个设置函数,我想这样使用:

async function setup()       
{
// Load the TF libs, then on complete - create the model.
await loadTensorFlowLibraries();
await createModel();
await load();
await train();
}

我的第一个函数像这样导入一些外部脚本:

function loadTensorFlowLibraries() {

$.when(
$.getScript( "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js" ),
$.getScript( "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-vis@1.0.2/dist/tfjs-vis.umd.min.js" ),
$.Deferred(function( deferred ){
$( deferred.resolve );
})
).done(function(){
console.log("Scripts loaded");
});
}

由于此函数异步运行,createModel()loadTensorFlowLibraries() 完成且脚本失败之前执行。

要解决此问题,我可以将回调函数传递给 loadTensorFlowLibraries,如下所示:

function loadTensorFlowLibraries(onComplete) {

$.when(
$.getScript( "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js" ),
$.getScript( "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-vis@1.0.2/dist/tfjs-vis.umd.min.js" ),
$.getScript( "uploads/michaelryan/data.js"),
$.Deferred(function( deferred ){
$( deferred.resolve );
})
).done(function(){
console.log("Scripts loaded");
onComplete();
});
}

这里的问题是我必须像这样将所有函数链接在一起,例如

function setup()       
{
// Load the TF libs, then on complete - create the model.
loadTensorFlowLibraries(createModel(load(train)));
}

任何人都可以告诉我如何设计像我的第一个示例那样的脚本吗?

最佳答案

$.when 返回一个类似 Promise 的对象,因此您可以从每个子函数中返回它:

function loadTensorFlowLibraries() {
return $.when(
$.getScript( "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@1.0.0/dist/tf.min.js" ),
$.getScript( "https://cdn.jsdelivr.net/npm/@tensorflow/tfjs-vis@1.0.2/dist/tfjs-vis.umd.min.js" )
);
}

然后您可以在 setup 函数中await 它,就像您在初始代码块中所做的那样。

关于javascript - 在不链接回调的情况下等待 getScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59235055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com