小编Ber*_*rgi的帖子

从异步函数返回解析值

在我的项目中,我使用 promise(下面的代码)pending,当我使用 keyword 时,该 promise 怎么可能await。有人可以帮我弄清楚,我做错了什么吗?

const getTs = async () => {
  const response = await axios.get('...')
    .then(res => res.data)
    .catch(() => 'ERROR');

  return response;
};

console.log(getTs()); // Promise { <pending> }
Run Code Online (Sandbox Code Playgroud)

javascript promise async-await ecmascript-6

2
推荐指数
1
解决办法
8274
查看次数

如何在forEach函数上执行async await

我是async等待和承诺的初学者.我阅读了一些文章并观看了一些教程视频,但我仍然无法完全理解它.所以我有一个我现在正在处理的代码

}).then(function() {
  var responseArray = []
  [url1,url2,url3,url4].forEach((url)=>{
      makeRequest(url)
  }).then((response)=>{
      responseArray.push(response)
  })
  return responseArray
})
Run Code Online (Sandbox Code Playgroud)

因此,如预期的那样,responseArray空的返回.我需要让它等到每个makerequest(url)的所有响应都被推送到responseArray.
这是我的尝试

}).then(function() {
      var responseArray = []
      [url1,url2,url3,url4].forEach((url)=>{
          async makeRequest(url)
      }).then((response)=>{
          await responseArray.push(response)
      })
      return responseArray
    })
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮我解决这个问题吗?

javascript foreach promise async-await

2
推荐指数
2
解决办法
7969
查看次数

为什么我在模式匹配时不能使用常量,即使它实现了 PartialEq 和 Eq?

我想net::Ipv4Addr::LOCALHOST在模式匹配时使用常量过滤掉 IPv4 localhost 地址:

use get_if_addrs; // 0.5.3
use std::net;

fn main() -> std::io::Result<()> {
    assert_eq!(
        "127.0.0.1".parse::<net::Ipv4Addr>().unwrap(),
        net::Ipv4Addr::LOCALHOST
    );
    {
        let ifaces = get_if_addrs::get_if_addrs().unwrap();
        for iface in ifaces {
            match iface.addr {
                get_if_addrs::IfAddr::V4(get_if_addrs::Ifv4Addr {
                    ip: _,
                    netmask: _,
                    broadcast: None,
                }) => (),
                get_if_addrs::IfAddr::V4(get_if_addrs::Ifv4Addr {
                    ip: net::Ipv4Addr::LOCALHOST,
                    netmask: _,
                    broadcast: _,
                }) => (),
                get_if_addrs::IfAddr::V4(addr) => println!("{:?}", addr),
                get_if_addrs::IfAddr::V6(_) => (),
            }
        }
    }
    Ok(())
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误

use get_if_addrs; // 0.5.3
use std::net;

fn main() -> std::io::Result<()> { …
Run Code Online (Sandbox Code Playgroud)

ip-address pattern-matching rust

2
推荐指数
1
解决办法
371
查看次数

即使可用的堆内存比使用的大得多,也会导致堆溢出内存错误

即使我使用以下命令运行具有高堆内存的节点时,我也会收到以下错误: node --max-old-space-size=8000 manipulateFiles.js

FATAL ERROR: invalid table size Allocation failed - JavaScript heap out of memory
1: 0x8dc510 node::Abort() [node]
2: 0x8dc55c  [node]
3: 0xad9b5e v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [node]
4: 0xad9d94 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [node]
5: 0xec7bf2  [node]
6: 0x102d7b2 v8::internal::OrderedHashTable<v8::internal::OrderedHashMap, 2>::Allocate(v8::internal::Isolate*, int, v8::internal::PretenureFlag) [node]
7: 0x1030946 v8::internal::OrderedHashTable<v8::internal::OrderedHashMap, 2>::Rehash(v8::internal::Handle<v8::internal::OrderedHashMap>, int) [node]
8: 0x1030f69 v8::internal::OrderedHashTable<v8::internal::OrderedHashMap, 2>::EnsureGrowable(v8::internal::Handle<v8::internal::OrderedHashMap>) [node]
9: 0x1114c7e v8::internal::Runtime_MapGrow(int, v8::internal::Object**, v8::internal::Isolate*) [node]
10: 0x908bb15be1d 
Aborted (core dumped)
Run Code Online (Sandbox Code Playgroud)

崩溃时使用的堆内存量为1.79G。可用量为6.15G。我使用了 v8 模块并process获得了这些数字。

所以显然除了堆大小之外还有其他原因导致了这个问题。该模块基本上扫描一个大型 CSV 文件并构建一个 Map 以供以后在此过程中参考。该映射最多可以有 …

javascript dictionary v8 node.js es6-map

2
推荐指数
1
解决办法
1256
查看次数

没有严格的比较,哪些值被评估为真和假?

我希望得到一个列表,列出所有要评估的值,true或者false使用差等式检查!=,==甚至是if()

我有一个列表,我收集了多年,但它与我的PC死了

javascript evaluate

1
推荐指数
1
解决办法
2842
查看次数

为什么thunkify/yield总是返回一个数组?

我有一个thunk名为logInline(改编自Co文档).

我注意到thunkified get总是似乎是yield一个数组.这是设计的吗?它是这样thunkify做的,还是标准的一部分yield

var co = require('co'),
  get = thunkify(request.get);

var logInline = co(function *(){
  var google = yield get('http://google.com'); 
  console.log(google[0].statusCode);
})

logInline()
Run Code Online (Sandbox Code Playgroud)

请注意,此处的变量'google'始终是一个数组.为什么?请注意,request.get通常返回err, response(即没有数组).

脚本BTW返回200google.com返回的任何其他响应代码.

产量文件是相当稀疏ATM.

编辑: Thunk并不总是返回数组.例如,如果var readFile = thunkify(fs.readFile);:

var fileContents = yield readFile('myfile', 'utf8');
log(fileContents);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,fileContents不会在数组中返回.那么为什么谷歌在一个阵列里? 在thunkify中似乎有一些东西可以控制thunk返回的内容

javascript yield thunk node.js co

1
推荐指数
1
解决办法
1335
查看次数

`this`context如何在立即执行的函数中起作用?

有人可以向我解释这里发生的事情导致我的属性被附加到窗口对象:

var MyObject = (function () {    
    this.property1 = "prop1";

    return this;
})();
// window.property1 now exists as well as MyObject.property1
Run Code Online (Sandbox Code Playgroud)

这是"正确"的方式:

var MyObject = (function () {
    var MyObject = {};
    MyObject.property1 = "prop1";

    return MyObject;
})();
// only MyObject.property1 now exists
Run Code Online (Sandbox Code Playgroud)

javascript

1
推荐指数
1
解决办法
48
查看次数

Jquery.第一个行为

所以我有一个简单的html页面:

<h1>Start</h1>
<canvas class="myCanvas" width="400" height="400"></canvas>
<canvas class="myCanvas" width="400" height="400"></canvas>
Run Code Online (Sandbox Code Playgroud)

在jquery我做,

> $(".myCanvas")
| [<canvas class=?"myCanvas" width=?"400" height=?"400">?, 
|  <canvas class=?"myCanvas" width=?"400" height=?"400">?]
Run Code Online (Sandbox Code Playgroud)

然后,

> $(".myCanvas").first()
| [<canvas class=?"myCanvas" width=?"400" height=?"400">?]
Run Code Online (Sandbox Code Playgroud)

我认为我应该在第一个()方法的调用中得到一个元素,就像在

> $(".myCanvas").get(0)
| <canvas class=?"myCanvas" width=?"400" height=?"400">?
Run Code Online (Sandbox Code Playgroud)

那么为什么第一个方法返回一个数组..?

javascript jquery

1
推荐指数
1
解决办法
51
查看次数

JavaScript如何获取Promise onSuccess在promise之外分配的变量值

我正在whiting firefox扩展.我得到了读取文件内容的功能:

var HelloWorld = {...
getData: function () {
        var env = Components.classes["@mozilla.org/processenvironment;1"].getService(Components.interfaces.nsIEnvironment);
        var path = env.get("TEMP");
        path = path + "\\lastcall.txt"
        alert(path);
        Components.utils.import("resource://gre/modules/osfile.jsm");
        let decoder = new TextDecoder(); 
        let promise = OS.File.read(path); 
        var line = null;
        promise = promise.then(
            function onSuccess(array) {
            line = decoder.decode(array)
            alert(line);
            return line;       
            }
        );
        alert("ducky:"+line+"duck");
    },
...};
Run Code Online (Sandbox Code Playgroud)

我除了那line将是相同的,因为声明在函数外.从内心的警报,我得到了适当的价值,但从我得到的外部duckynullduck.如何解决它

javascript scope firefox-addon promise

1
推荐指数
1
解决办法
840
查看次数

Scala中类参数的val是什么?

我有时会看到类似下面的东西.

class Test(val str: String){
}
Run Code Online (Sandbox Code Playgroud)

我写了一些示例代码,val但我没有看到常见声明和方式之间有任何区别val.

他们之间有什么区别?什么时候应该使用?

scala

1
推荐指数
1
解决办法
178
查看次数