如何在严格的 js 文件中读取承诺

How to read a promise in a strict js file

我正在开发一个在 ECMA 5 中运行的程序。

所有 js 文件都严格使用,这使得大多数在线建议无法使用,例如 return 新 Promise.resolve 在严格模式下不可用。

我正在调用异步方法来获取 url,如果 url 被 return 编辑,那么用户应该看到一个按钮,按下该按钮会将用户转到该按钮页。我有这个工作与异步和等待。现在我想将它从页面加载中移到页面加载后执行此操作,这样它就不会影响页面呈现。以防服务中断。

    var self = this;
    $(document).ready(function () {
        alert("ok");
        var promise = $.get(myService.getMyUrl());
        $.when.apply(self, promise).then(function() {
            self.url(arguments);
            self.showButton(self.url() ? true : false);
        });
    });

显示警报,所以我知道我到了这里,但问题是我无法使该函数成为异步函数并简单地等待结果,那么我该如何解决承诺?

如上所述,我已经尝试过 new Promise.resolve() (给出:在严格模式下使用一个变量而不声明它是不允许的)并且这段代码也不起作用,因为参数在严格模式下不可读.还有其他想法吗?

来自https://api.jquery.com/jquery.get/

jQuery.get( url [, data ] [, success ] [, dataType ] )

我想你想要的是将 success 函数放入对 get 的调用中。但是我不知道 self 应该指的是什么,而且我认为 arguments 可能也没有被正确使用。所以我建议早点设置它们。

  let self = something;
  let args = somethingElse;
  $(document).ready(function () {
      alert("ok");
      $.get(myService.getMyUrl(), function(data, textStatus) {
          // maybe set args from data?
          self.url(args);
          self.showButton(self.url() ? true : false);
      });
  });

最后用

解决了
    myService.getMyUrl().done(function(data) {
        self.myUrl(data);
        self.showButton(myUrl ? true : false);
    });

显然有些人并不清楚我的问题。如果事情不清楚,请问不清楚的地方,也可以慢慢地再读一遍这个问题。误解显然是一回事。