小编blo*_*pit的帖子

简单来说,thunk和高阶函数之间有什么区别?

我知道两者都是返回函数的函数.

到目前为止,我使用thunk的经验一直在使用它们返回函数而不仅仅是动作对象,这样我就可以使用异步请求Redux.

闭包是一个高阶函数(HOF)的实现,以便为私有变量创建一个新的范围......对吗?HOFs的其他例子包括map,reducefilter.

有没有其他明确定义两者之间差异的东西?

谢谢.

javascript functional-programming thunk higher-order-functions redux

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

为什么 Promise.all 中的承诺仍然悬而未决?

这是我尝试重构我的代码以正确利用承诺。整个程序是一个基本的网络爬虫。

这样做的挑战是尝试确保 lastStep 可以访问每个页面的 HTML 和 URL,因此我尝试返回一个对象nextStep().

我正在控制台记录 html 并且它已正确返回,但由于某种原因,承诺的记录如下:Promise { <pending> }。为什么会发生这种情况以及如何解决它?

谢谢你!

//Modules being used:
var cheerio = require('cheerio');
var json2csv = require('json2csv');
var request = require('request');
var moment = require('moment');
var fs = require('fs');

//harcoded url
var url = 'http://shirts4mike.com/';

//url for tshirt pages
var urlSet = new Set();

var remainder;
var tshirtArray = [];


const requestPromise = function(url) {
    return new Promise(function(resolve, reject) {
        request(url, function(error, response, html) {

            if(error) return reject(error); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js web-scraping promise

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

如何将这些功能与承诺链接在一起?

这是一个程序,它从Tshirt网站上删除数据,然后将产品信息写入CSV文件.

有3个刮擦功能和1个写入功能.

现在,我正在寻找一个绝对的噩梦,试图在没有任何第三方库或包的情况下实现如何实现承诺.只有ES6的原生功能才有可能吗?

由于请求的异步性质,我需要在调用下一个函数之前完成每个函数及其请求.这样我就可以使用urlSet下一个函数中的变量.

如何在不重写整个代码的情况下完成此操作?

我应该提一下,这些功能中的每一个都是单独工作的,它们都经过多次测试.

每项职能是否都成为个人承诺?

代码如下,谢谢:

//TASK: Create a command line application that goes to an ecommerce site to get the latest prices.
    //Save the scraped data in a spreadsheet (CSV format).

'use strict';

//Modules being used:
var cheerio = require('cheerio');
var json2csv = require('json2csv');
var request = require('request');
var moment = require('moment');
var fs = require('fs');

//harcoded url
var url = 'http://shirts4mike.com/';

//url for tshirt pages
var urlSet = new Set();

var remainder;
var tshirtArray …
Run Code Online (Sandbox Code Playgroud)

javascript request node.js promise

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

如何将Twitter API发布时间/日期转换为有效的ISO格式?

我正在建立一个Twitter界面,我想显示Twitter本身的时间.

我执行GET请求并抓取推文,然后将其传递给我moment.js以进行转换.

这是一个代码片段:

client.get('direct_messages', {screen_name: 'theclearytheory', count: '3'}, function(error, messages, response){
    if(!error){
        var privateMessageTime = [];

        for(var i=0; i < messages.length; i++){
            console.log(messages[i].created_at);
            privateMessageTime.push(moment(messages[i].created_at).fromNow());
        }
    } else {
        console.log(error)
    }
Run Code Online (Sandbox Code Playgroud)

现在,这个工作正常.如果我回来,Sun Oct 02 11:59:43 +0000 2016那么程序正确地将其转换为:2 months ago.

问题是我在控制台中收到此警告消息:

弃用警告:提供的值不是公认的ISO格式.时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠.不鼓励使用非ISO日期格式,并将在即将发布的主要版本中删除.有关更多信息,请参阅http://momentjs.com/guides/#/warnings/js-date/.参数: [0] _isAMomentObject: true, _isUTC: false, _useUTC: false, _l: undefined, _i: Fri Jul 22 10:19:18 +0000 2016, _f: undefined, _strict: undefined, _locale: [object Object]

我已经浏览了它链接到的文档,但我无法弄清楚如何使用它.如果有人对此有任何经验(或者比我更聪明),我真的很感激任何帮助!

javascript twitter node.js momentjs

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

ECONNREFUSED:连接被拒绝。为什么?所有其他测试均通过

我正在使用 node/express/mongo 并尝试运行测试来查找具有特定 id 的帖子。

这是我的路线:

app.get('/api/posts/:id', PostController.getPost);
Run Code Online (Sandbox Code Playgroud)

这是控制器:

   getPost(req, res, next) {
    const postId = req.params.id;

    Post.findById({ _id: postId })
      .then(user => res.send(user))
      .catch(next);
  },
Run Code Online (Sandbox Code Playgroud)

这是测试:

describe('Post Controller', () => {
  it('find a post with a particular id', (done) => {
    const post = new Post({
      text: 'This is a post',
      voteCount: 0,
      commentCount: 0,
      createdAt: 0,
      expiresAt: 0
    });

    post.save().then(() => {
      console.log(post._id);
      request(app)
        .get(`api/posts/${post._id}`)
        .set('Accept', 'application/json')
        .expect(200)
        .end((err, res) => {
          console.log(res);
          if (err) return done(err);
          //assert(response.body.obj.firstName …
Run Code Online (Sandbox Code Playgroud)

javascript mocha.js mongodb node.js express

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