Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要使用带有两个函数的wait或promises的帮助吗_Javascript_Html_Asynchronous - Fatal编程技术网

Javascript 需要使用带有两个函数的wait或promises的帮助吗

Javascript 需要使用带有两个函数的wait或promises的帮助吗,javascript,html,asynchronous,Javascript,Html,Asynchronous,Hi创建了两个函数,一个用于从文件中读取单词,另一个用于将这些单词放入select组件。我认为问题在于,一个是异步执行的,但我不知道该把我的承诺或等待放在哪里 我读过关于这些概念的文章,但似乎没有一篇适用于我的示例,因此非常感谢您的帮助 我的第一个调用异步函数的函数 <script> function readinfiles() {

Hi创建了两个函数,一个用于从文件中读取单词,另一个用于将这些单词放入select组件。我认为问题在于,一个是异步执行的,但我不知道该把我的承诺或等待放在哪里

我读过关于这些概念的文章,但似乎没有一篇适用于我的示例,因此非常感谢您的帮助

我的第一个调用异步函数的函数

  <script>

                            function readinfiles()
                            {

                                    var options = "<option value ='0'>select</option>";
                                    alert("hi");
                                    var values= getTxt();
                                    alert(values);


                            }

                    </script>

函数readinfiles()
{
var options=“选择”;
警报(“hi”);
var值=getText();
警报(数值);
}
获取信息的第二个函数

 <script src="jquery.js"></script>
                    <script>
                    getTxt =  function (){

                      $.ajax({
                            url:'fileslist.txt',
                            success: function (data){
                            return data.split('\n');
                            }
                      });
                    }
                    </script>

getText=函数(){
$.ajax({
url:'fileslist.txt',
成功:功能(数据){
返回数据。拆分('\n');
}
});
}

目前还没有定义值数组,如果您能帮助重新构造这些函数,我们将不胜感激。首先,我建议将这两个函数合并为一个函数,并在其前面加上async关键字。通过这种方式,您可以在内部使用promise,它实际上试图通过ajax获取数据。这样的承诺可以被拒绝,也可以被解决。如果已解决—在您的情况下,如果已成功加载文件列表—而不是返回数据,则可以使用数据解决承诺

下面是一些代码:

async function readinfiles() {

  var options = "<option value ='0'>select</option>";
  alert("hi");
  var promise = new Promise(function(resolve, reject) {

    $.ajax({
      url: 'fileslist.txt',
      success: function(data) {
        resolve(data.split('\n'));

      }
    });
  });

  var values = await promise;
  alert(values);
}
readinfiles();

如您所见,我们正在创建一个名为values的新变量,并将wait关键字所指示的承诺结果分配给它。这意味着在承诺被解决或拒绝之前,它不会执行下一个函数-alert()。

你是我的英雄,其他人对我都很刻薄,因为你实际上向我提供了有用的信息。非常感谢我的帮助没问题-很高兴我能帮忙!=)别忘了读书
  var values = await promise;
  alert(values);