小编mon*_*ist的帖子

从执行函数返回一个承诺?

尝试与JS API交互,但在Grunt任务运行时失败; 我认为我的逻辑很困惑.我的步骤:

  • 从文件中获取令牌,检查它们(check_tokens)
  • 如果他们是旧的 - 刷新他们(refresh_tokens)
  • 调用API刷新,如果失败 - 获取新的(authorize_with_api)< - 这就是问题
  • authorize_with_api拒绝与错误或解决与令牌

目前,Grunt任务报告UnhandledPromiseRejectionWarning并且永远不会完成.如果我注释掉它的调用authorize_with_api然后正确退出并出现错误,我会caught error!打印出最顶层的消息.

为什么我不能从执行函数中返回一个承诺?我的逻辑出了什么问题?

/* global sdk, config, tokens */
return getTokens().then((p_tokens) => {
    tokens = p_tokens;
    return check_tokens(tokens);
}).then((tokens) => {
    console.log('then() is called!');
}).catch((err) => {
    console.error('caught error!', err);
}); 

function check_tokens(tokens) {
    if(are_old(tokens)) { // returns true
        return refresh_tokens(tokens);
    }
    return Promise.resolve(tokens);
}

function refresh_tokens(tokens) {
    return new Promise(function(resolve, reject) { …
Run Code Online (Sandbox Code Playgroud)

javascript promise ecmascript-6 es6-promise

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

如何在使用 AbortController 中止后重新启动 fetch api 请求

我正在开发一个外卖订单接收应用程序(使用 WooCommerce API),订单将立即收到。我创建了一个简单的仪表板,其中显示所有订单,并使用 fetch API 和setInterval.

因此,当用户单击他们在仪表板上收到的订单时。用户管理订单的位置会出现模型弹出窗口。但由于 setInterval(5 秒),模型消失了。为了解决这个问题,我使用该技术来清除间隔,以便当用户单击订单间隔时被清除,并且不会进一步请求,直到用户管理模型框中的订单并按保存按钮,保存时我再次调用函数setInterval

但在这种技术中,存在一个问题:如果setInterval要执行并且用户单击订单,并且由于 fetch 已被触发并且所有订单都已刷新,则模型会消失。所以我必须再次点击订单。

然后我使用AbortControllerAPI​​,它完全按照我想要的方式工作。

AbortController 中止异步获取请求,一旦我中止获取请求,它就不会再次启动,而不是给出错误告诉操作已中止(Uncaught (in promise) DOMException: The operation was aborted)。

长话短说,如何使用 AbortController 再次重新启动 fetch API 请求?

const controller = new AbortController();
const signal = controller.signal;

function gettingOrders(){

var refreshInterval = setInterval(async function(){

const response = await fetch('index.php',{
    method: "GET",
    signal: signal,
    headers : { 
      'Content-Type': 'text/html',
      'Accept': 'text/html'
   }});
   try {

    const html = await response.text();
    var parser …
Run Code Online (Sandbox Code Playgroud)

javascript abort fetch setinterval async-await

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

PHP中身份验证的最佳方式

在模型 - 视图 - 控制器方式中编写身份验证库时,最好和最安全的方法是什么?

让我困难的事情是跟踪用户活动并通过cookie记住用户或在数据库中存储会话?

提前致谢 :).

php authentication model-view-controller remember-me

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

在模式中建立一对一关系的方法?

例如,我有一个表cars,每个都有一个model和一个make.一辆汽车只能有一辆汽车,并且有一张桌子,models并且makes有自动生成的ID.我可以在cars桌子上参考这些吗?JSON会是什么样子?

我尝试在cars表中创建一个新字段并id在"Via"文本框中指定,但它只是在相应的表id1中创建一个新列.有没有正确的方法?

这是我的示例模式JSON:

  {
    "name": "cars",
    "fields": {
      "model": {
        "object": "models"
      },
      "make": {
        "object": "makes"
      }
    }
  },
  {
    "name": "models",
    "fields": {
      "title": {
        "type": "string"
      },
      "make": {
        "object": "makes"
      },
      "id": {
        "collection": "cars",
        "via": "model"
      }
    }
  },
  {
    "name": "makes",
    "fields": {
      "models": {
        "collection": "models",
        "via": "make"
      },
      "title": {
        "type": "string"
      },
      "id": …
Run Code Online (Sandbox Code Playgroud)

json backand

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

实现jquery自定义过滤器的简洁方法(基于父类的选择)?

我要选择每一个textarea的具有一流的DIV 红色的家长们,做一些每个,然后做别的事情与文本域的页面上的其余部分.换句话说,选择一组元素,仅处理其中一些元素,然后对其余元素执行其他操作.

我知道我可以做类似下面的事情,但有没有一种不那么笨拙的方式呢?

$('textarea').filter(function() {
    return $(this).parents("div.red").length > 0;
}).css('border','1px solid red').end().filter(function() {
    return $(this).parents("div.red").length == 0;
}).css('border','1px solid green');
Run Code Online (Sandbox Code Playgroud)

谢谢!

jquery

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

使用ajax处理长服务器端操作?

我有一个特别长的操作,当用户按下界面上的按钮时,它会运行,我想知道将这个指示回客户端的最佳方法是什么.

该操作填充了一个事实表,持续数年的数据,大约需要20分钟,所以我不打算让接口同步.即使它产生了大量的数据服务器端,我仍然希望一切都能保持响应,因为用户当前正在查看的月份数据将很快更新,这不是问题.

我考虑在操作完成后设置会话变量并轮询该会话变量.这是做这种事情的可行方法吗?但是,我特别关注用户导航/关闭浏览器,然后关于长时间运行的作业的所有状态都将丢失.

在开始和结束时,可能会在处理记录的某处插入记录更好.然后创建一些其他类型的接口,以便用户(或用户)可以监视当前正在执行/已完成/失败的作业?

有没有人可以看到任何资源?

你过得怎么样?

php ajax usability jquery

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

如何从子页面的永久链接中删除父段?

如何从子页面的永久链接中删除父 slug?这可能不是 Atahualpa 特有的,但我不知道该怎么做……也许有一个可以工作的插件?

我使用设置为父页面的子页面的页面(即不是帖子)。在我的菜单栏导航中,它们显示为:

/services/page1.html
/services/page2.html
/services/page3.html
Run Code Online (Sandbox Code Playgroud)

我想要的是:

/page1.html
/page2.html
/page3.html
Run Code Online (Sandbox Code Playgroud)

(我正在使用“html-on-pages”插件来添加 .html,因为我正在从另一台服务器上移动这个站点,这是它目前拥有的站点结构。)

有什么方法可以完成我想要做的事情吗?

wordpress

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

属性应该传递对象吗?

当我将值传递给聚合物元素属性时,我可以通过Polymer的数据绑定传递一个对象.但是,如果我决定离开"polymer-land"并想要将属性设置为对象,我就不能.我应该将对象传递给属性吗?

如果答案是"不,你应该使用方法",那么后续问题就是"我可以在不在Polymer框架中调用元素的方法吗?" 例如,如果我有一个Polymer元素:

<hello></hello>
Run Code Online (Sandbox Code Playgroud)

我想访问一个名为"world"的方法.在Polymer中,它将是:

this.$.hello.world();
Run Code Online (Sandbox Code Playgroud)

是否可以在不使用Polymer元素定义的情况下调用此方法?

polymer

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

如何将 TypeScript 变量值设置为 CSS 属性?

我有一个图像(在材料卡内)每 30 秒改变一次。我有图像的高度(作为 TS 变量),我想将其设置为加载图像的高度。我尝试了以下方法,但我认为语法是错误的。什么是正确的做法?

@Component({
selector: 'app-live',
templateUrl: 

 <mat-card [ngStyle]="{'min-height': '{{taille}}'}">
  <img  mat-card-image [src]="profileUrl | async " alt="Streaming de la culture" #img [ngStyle]="{'padding-top':'0px' }" (load)="dosomething(img)">
 </mat-card>

export class LiveComponent implements OnInit {

taille;

dosomething(img) { console.log(img.clientWidth, img.clientHeight);
                   this.taille = img.clientHeight;
                   console.log(this.taille);}
Run Code Online (Sandbox Code Playgroud)

css typescript angular

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

dockerfile 不更新容器

我正在使用 docker 使用应用程序(我不是很熟悉),我需要添加 2 个新的 PHP 扩展。我Dockerfile对现有图像进行了如下更改:

FROM php:7.2-fpm

RUN apt-get update

RUN apt-get install -y git unzip

RUN php -r "readfile('http://getcomposer.org/installer');" | php -- --install-dir=/usr/bin/ --filename=composer

RUN apt-get install -y git libpng-dev \
    && docker-php-ext-install gd

RUN apt-get install -y mysql-client \
    && docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \
    && docker-php-ext-install pdo_mysql

RUN apt-get install -y libgmp-dev bcmath \
    && docker-php-ext-configure gmp \
    && docker-php-ext-install gmp \
    && docker-php-ext-install bcmath

RUN pecl install xdebug \
    && docker-php-ext-enable xdebug

ADD …
Run Code Online (Sandbox Code Playgroud)

provisioning php-extension docker docker-compose

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